/**
 * 版权所有(C)，上海海鼎信息工程股份有限公司，2008，所有权利保留。
 * 
 * 项目名：	rumba
 * 文件名：	ModuleServiceImpl.java
 * 模块说明：	
 * 修改历史：
 * Feb 4, 2008 - lxm - 创建。
 */
package com.hd123.rumba.gwt.cpnts.module.server;

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

import com.hd123.rumba.exception.BusinessException;
import com.hd123.rumba.gwt.base.client.exception.ClientBizException;
import com.hd123.rumba.gwt.base.server.RBRemoteServiceServlet;
import com.hd123.rumba.gwt.cpnts.module.client.ModuleService;
import com.hd123.rumba.request.GWTModuleDispatcher;
import com.hd123.rumba.util.ObjectUtil;

/**
 * @author lxm
 * 
 */
public class ModuleServiceImpl extends RBRemoteServiceServlet implements ModuleService {

  public String getRealModuleURL(String relaModuleURL) throws ClientBizException {
    try {
      ObjectUtil.checkParameterNotNull(relaModuleURL, "relaModuleURL");
      return GWTModuleDispatcher.getInstance().getModuleURL(relaModuleURL);
    } catch (BusinessException e) {
      this.reportError("", e);
      throw this.buildException("", e);
    }
  }

  public Map getRealModuleURLs(Set relaModuleURLs) throws ClientBizException {
    try {
      ObjectUtil.checkParameterNotNull(relaModuleURLs, "relaModuleURLs");
      GWTModuleDispatcher dispatcher = GWTModuleDispatcher.getInstance();
      Map realURLs = new HashMap();

      Object[] relaURLs = relaModuleURLs.toArray();
      for (int i = 0; i < relaURLs.length; i++) {
        String relaURL = (String) relaURLs[i];
        String realURL = dispatcher.getModuleURL(relaURL);
        realURLs.put(relaURL, realURL);
      }
      return realURLs;
    } catch (BusinessException e) {
      this.reportError("", e);
      throw this.buildException("", e);
    }
  }

}
